DACT: IFRF 3=5;TYPE 4,3,4,9,BORDER,Layout Features
DACT: IFRF 3=6;TYPE 4,3,4,9,BORDER,EHB Colours
/*
/* Lights up - enter one Viking hero
DACT: LIGHTS ON;CMOVE 70,157,P
/*
/* First visit information
DACT: IFRF 2=0;CUTSCENE 6,H;SETRF 2=1
/*
/* Path and floor tutorial
/* (Also see the comment in the ACTION: -1;... statement, triggered by
/* timer 2)
/*
DACT: IFRF 3=1;SAY Studying the floors and the path, shown on the floor here, and the FLOOR: and PATH: statements in 5.room, should give you an idea of how floors and paths work.
DACT: IFRF 3=1;SAY By the way, the editor now handles path editing - the only tricky part is specifying which floors are at the path's end points, and of course, the usual "floor maps" mayhem...
DACT: IFRF 3=1;SAY I'm going to let you study this on your own. Click on various spots in the room, both within and outside the floors, to see how I move.
DACT: IFRF 3=1;SAY You will notice how I never stop along the path, but always inside a floor, as close as possible to the point you clicked.
DACT: IFRF 3=1;SAY Okay, click away! Just click one of the commands in the command area when you're finished!;EXIT
/*
/* Clock tutorial
DACT: IFRF 3=2;SAY As you may have noticed, there is a completely useless clock in the bottom right corner.;SAY It's there to show what the TIME_LAYOUT: statement can do.
DACT: IFRF 3=2;SAY The time shown is the GAME time, and it doesn't have anything to do with the REAL time out there in YOUR world.
DACT: IFRF 3=2;SAY You can set the game time at certain points in your adventure, or have a timer update it at regular intervals.;SAY More about that later.
DACT: IFRF 3=2;SAY Now right-click the clock on the table to get the time from me personally!;EXIT
/*
/* Default commands
DACT: IFRF 3=3;SAY Default commands - well, this program uses them EVERYWHERE.;SAY However, this is a special application - so how would you normally use them?
DACT: IFRF 3=3;SAY The most common default command is probably LOOK AT (or similar).;SAY I even recommend that all objects that can appear in the inventory has this default verb.
DACT: IFRF 3=3;SAY This makes browsing the inventory a more consistent affair, because only the object name and not the default verb is automatically shown in the sentence box.
DACT: IFRF 3=3;SAY Other common default commands could be TALK TO for persons, and OPEN for doors.
DACT: IFRF 3=3;SAY Just be careful not to make the game TOO automatic - you don't want to spoil the puzzles by giving the player default commands that solve them!;GOTO 3,1
/*
/* Direct commands
DACT: IFRF 3=4;SAY The three commands in the command area here - "Front page", "Next page" and "Quit" - are all examples of direct commands.
DACT: IFRF 3=4;SAY By the way, the diskette icon is also a direct command: "Save/load"
DACT: IFRF 3=4;SAY Look in graal.main and see how they are defined in the VERB_TEXT: statements.
DACT: IFRF 3=4;SAY All direct commands react immediately when you click them, and they work with both mouse keys.
DACT: IFRF 3=4;SAY Because direct commands don't check for selected objects, you should not normally use IFOBJ with them.
DACT: IFRF 3=4;SAY Check out the QUIT command set up and used in this program, and how the DISABLE_QUIT: statement in graal.main has disabled the normal "q" quit key.
DACT: IFRF 3=4;SAY Use this to end your adventure in a stylish way - before you give the QUIT command, you can jump to a room just containing and end-of-game screen, for example.
DACT: IFRF 3=4;SAY The save and load function has been implemented in a similar way. Click the diskette to see it in action.;GOTO 3,1
/*
/* Layout features
DACT: IFRF 3=5;SAY As you can see from the command area in this diskmag, there are almost no limits to what you can do with the layout in GRAAL 2.
DACT: IFRF 3=5;SAY Note that the inventory seems to be completely gone. In fact, it's just defined in such a way that it SEEMS to be non-existent.
DACT: IFRF 3=5;SAY Among other things, the inventory arrow images are small images consisting of nothing but background colour, which makes them totally transparent...
DACT: IFRF 3=5;SAY ...and the minute areas still occupied by the inventory have been placed where they do not interfere with the other stuff in the command area.;GOTO 3,1
/*
/* EHB colours
DACT: IFRF 3=6;SAY This room, and indeed most other rooms in the Herald, uses the extra half-brite mode to get 64 colours.
DACT: IFRF 3=6;SAY You may notice that the colours here are not dithered, which produces a whole different "feel" to the graphics than that of the GRAAL demo adventure.
DACT: IFRF 3=6;SAY One thing to remember: If the room is 64 colours, make sure the clipart graphics - including the main character - is, too!
DACT: IFRF 3=6;SAY If the images you use in a 64-colour room looks "transparent" in an odd way, you have missed this important fact!
DACT: IFRF 3=6;SAY Also, make sure you DO use the "EHB" mode in your paint program...;SAY ...and not a 64-colour AGA mode, which is something completely different.;GOTO 3,1
DACT: EXIT
/* LINE: dlg;line_no;sentence1;sentence2| ;{cond} (This statement is optional)
/* LACT: dlg;line_no;{cond|comm} (This statement is optional)
/* ACTION: verb_no;{cond|comm} (This statement is optional)
/* Make sure to cancel timer 2 if we exit the room without having used
/* floor 3...
ACTION: 1;CANCEL 2
ACTION: 2;CANCEL 2
ACTION: 3;CANCEL 2
/* ACTION: 2 - Next page
ACTION: 2;IFRF 3=1;SETRF 3=2;GOTO 5,1
ACTION: 2;IFRF 3=2;SETRF 3=3;GOTO 5,1
ACTION: 2;IFRF 3=3;SETRF 3=4;GOTO 5,1
ACTION: 2;IFRF 3=4;SETRF 3=5;GOTO 5,1
ACTION: 2;IFRF 3=5;SETRF 3=6;GOTO 5,1
ACTION: 2;IFRF 3=6;SETRF 4,1=2;GOTO 4,1
/* Activating the table clock...
/*
ACTION: 5;IFOBJ ROBJ1;IFRF 4=0;MOBJ;SAY The time is #TIME.;CBOB 11;SAY That message contained a special string showing the time, and it was formatted according to the TIME_FORMAT: statement in the graal.main file...;CMOVE 70,157,P
ACTION: 5;IFOBJ ROBJ1;IFRF 4=0;SAY Let's test the current time. First, I'll set the clock to 0:00...;SETTIME 0,0;SAY ...now click the table clock. You will get different messages depending on whether you click it before 0:15 or after!;SETRF 4=1;EXIT
ACTION: 5;IFOBJ ROBJ1;IFRF 4=1;IFTIME <015;SAY Yes, it's not yet a quarter past!
ACTION: 5;IFOBJ ROBJ1;IFRF 4=1;IFTIME >010;SAY I think it's already a quarter past or more!
ACTION: 5;IFOBJ ROBJ1;IFRF 4=1;SAY The clock is run by a timer, started in room 1 with a DOAFTER command.;SAY The ACTION: statement triggered by the timer is placed in graal.main so that it works in every room.
ACTION: 5;IFOBJ ROBJ1;IFRF 4=1;SAY It contains an ADDTIME command that adds five minutes to the clock every time the timer elapses.;SAY That's it! Now all you have to do is think about ways to use times and dates in your adventure... or not.;GOTO 3,1